package com.xique.door.project.xyl.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.door.bean.domain.ParkCarMngtype;
import com.xique.door.bean.domain.ParkIn;
import com.xique.door.bean.vo.xyl.HouseStatisticVO;
import com.xique.door.project.xyl.bean.request.PersonInOutRequest;
import com.xique.door.project.xyl.bean.vo.XylHomeHouseStatisticsVo;
import com.xique.door.project.xyl.bean.vo.XylHomePersonStatisticsVo;
import com.xique.door.project.xyl.bean.vo.XylParkInOutVo;
import com.xique.door.project.xyl.bean.vo.XylPersonInOutVo;

import java.util.List;
import java.util.Map;

/**
 * @author: caogq
 * @Date: 2021/12/20 14:54
 * @Description: 西洋楼业务处理类
 */
public interface IxylService {
    /**
     * @description: 西洋楼首页
     * @author caogq
     * @date 2021/12/22 16:47
     * @version 1.0
     */

    AjaxResult getHomePageInfo(Long parkId);

    /**
     * @description: 西洋楼首页房屋统计
     * @author caogq
     * @date 2021/12/22 10:51
     * @version 1.0
     */
    XylHomeHouseStatisticsVo selectHomePageHouseStatistics(Long parkId);

    /**
     * @description: 西洋楼首页人员统计
     * @author caogq
     * @date 2021/12/22 10:51
     * @version 1.0
     */
    XylHomePersonStatisticsVo selectHomePagePersonStatistics(Long parkId);

    /**
     * @description: 查询首页人员进出记录
     * @author caogq
     * @date 2021/12/22 16:47
     * @version 1.0
     */

    List<XylPersonInOutVo> selectHomePagePersonInOutRecord(Long parkId);


    /**
     * @description: 西洋楼首页人车辆记录统计
     * @author caogq
     * @date 2021/12/22 10:51
     * @version 1.0
     */
    List<XylParkInOutVo> selectHomePageParkInOutVos(ParkIn parkIn);

    /**
     * 企业人员统计
     *
     * @param parkId
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2021/12/21 13:27
     */
    AjaxResult companyPersonStatistic(Long parkId);

    /**
     * 楼栋信息
     *
     * @param parkId
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2021/12/23 16:13
     */
    AjaxResult buildingInfo(Long parkId);

    AjaxResult selectPagePersonInOutRecordList(PersonInOutRequest request);

    /**
     * @description: 西洋楼车辆记录统计列表页
     * @author caogq
     * @date 2021/12/22 10:51
     * @version 1.0
     */
    AjaxResult selectPageParkInOutList(ParkIn request);

    List<ParkCarMngtype> selectParkCarMngtypeList(ParkCarMngtype parkCarMngtype);

    Map<Long, Object> selectCensusRegisterByUserIds(List<Long> userIds);

    /**
     * @description: 统计出租数量最多的前三个楼栋，及其对应的空置房间数量
     * @author caogq
     * @date 2022/1/13 13:15
     * @version 1.0
     */

    public List<HouseStatisticVO> selectHomeRentHouseStatistics(Long parkId);
}
